import 'package:flutter/material.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:sonora/bloc/base/sj_base_event.dart';

part 'sj_mine_event.freezed.dart';

@freezed
class SjMineEvent extends SjBaseEvent with _$SjMineEvent {
  const factory SjMineEvent.initial() = SjMineEventInitial;
  const factory SjMineEvent.pagePop() = SjMineEventPagePop;
  const factory SjMineEvent.loadedUserInfo() = SjMineEventLoadedUserInfo;
  const factory SjMineEvent.loadedGoodSearchList() = SjMineEventLoadedGoodSearchList;
  const factory SjMineEvent.addHeaderImage() = SjMineEventAddHeaderImage;
  const factory SjMineEvent.updateHeaderImage() = SjMineEventUpdateHeaderImage;
  const factory SjMineEvent.logout({required BuildContext context}) = SjMineEventLogout;
  const factory SjMineEvent.deleteAccout({required BuildContext context}) = SjMineEventDeleteAccount;
  const factory SjMineEvent.nickNameChanged({required String nickName}) = SjMineEventNickNameChanged;
  const factory SjMineEvent.birthdayChanged({required String birthday}) = SjMineEventBirthdayChanged;
  const factory SjMineEvent.countryChanged({required String country}) = SjMineEventCountryChanged;
  const factory SjMineEvent.savingUserInfo() = SjMineEventSavingUserInfo;
  const factory SjMineEvent.saveUserInfo() = SjMineEventSaveUserInfo;
  const factory SjMineEvent.savedUserInfo({required bool saveSuccess, required String? msg}) = SjMineEventSavedUserInfo;
  const factory SjMineEvent.initialPurchase({required String goodCode}) = SjMineEventInitialPurchase;
  const factory SjMineEvent.autoTranslate({required bool autoTranslate}) = SjMineEventAutoTranslate;
  const factory SjMineEvent.friend({required String followUserId}) = SjMineEventFriend;
  const factory SjMineEvent.unFriend({required String followUserId}) = SjMineEventUnFriend;
  const factory SjMineEvent.insertRecord({String? broadcasterId, String? complainCategory, String? complainSub}) = SjMineEventInsertRecord;
  const factory SjMineEvent.removeBlock({required String broadcasterId}) = SjMineEventRemoveBlock;
  const factory SjMineEvent.loadedFollowList() = SjMineEventLoadedFollowList;
  const factory SjMineEvent.loadedBlockList() = SjMineEventLoadedBlockList;
  const factory SjMineEvent.loadWorksList() = SjMineEventLoadWorksList;
  const factory SjMineEvent.deleteWorks({required String worksId}) = SjMineEventDeleteWorks;
  const factory SjMineEvent.takePhoto() = SjMineEventTakePhoto;
}